﻿using System;
using System.Collections.Generic;

namespace AddInActorView
{
    [System.AddIn.Pipeline.AddInBase]
    public abstract class ActorView
    {
        #region Properties

        /// <summary>
        /// Gets the name of the add-in;
        /// </summary>
        public abstract string InternalName { get; }

        /// <summary>
        /// Gets the add-in version;
        /// </summary>
        public abstract string CompatibilityVersion { get; }

        #endregion

        #region Methods

        /// <summary>
        /// Gets default add-in settings, used for filling UI.
        /// </summary>
        /// <returns>Current add-in initial settings.</returns>
        public abstract KeyValuePair<string, string>[] GetInitialSettins();

        /// <summary>
        /// Gets keys for all settings.
        /// </summary>
        public abstract string[] GetSettingNames();

        /// <summary>
        /// Applies settings to system.
        /// </summary>
        /// <param name="settings">Settings to apply.</param>
        public abstract void ApplySettings(KeyValuePair<string, string>[] settings, Guid networkCard);


        #endregion
    }
}
